import axios from 'axios'
import store from '@/store'
import xhr from './api.js'
import { getHome } from './homeInterface'
import { getIndustrialMap } from './industrialMapInterface'
import { getIndustryCloud } from './industryCloudInterface'

//获取片区
function getArea() {
  return xhr.get('./restfulData/homeParams.json')
}

//获取产业云图筛选条件 enterprise_scale 、 industry_type
function getEntInd() {
  return xhr.get('./restfulData/cloudParams.json')
}

function getBulianData(params) {
  store.commit('setPopParams', params)
  let param = store.state.popParams
  return new Promise((resolve, reject) => {
    xhr
      .get('./restfulData/popData.json', param)
      .then((res) => {
        store.commit('setPopData', res)
        app.focusServer.activated('bluev')
      })
      .catch((err) => {
        console.log('获取弹出框数据失败')
      })
  })
}

// 方式一：分路由调取数据
/************************* 分路由进行数据调取 - 开始 ******************************/
const init = () => {
  // 分路由页面 进行数据分别调取
  if (app.control.to.path == '/home') {
    getArea().then((res) => {
      store.commit('setArea', res.area)
    })
    getHome(store.state.homeParams).then((data) => {
      app.$emit(app.EventType.dataInit, { data, force: true }) //force=true 强制系统每次进行此接口调用
    })
  } else if (app.control.to.path == '/industryCloud') {
    getEntInd().then((res) => {
      store.commit('setEntInd', res)
    })
    getIndustryCloud(store.state.cloudParams).then((data) => {
      app.$emit(app.EventType.dataInit, { data, force: true }) //force=true 强制系统每次进行此接口调用
    })
  } else if (app.control.to.path == '/industrialMap') {
    getIndustrialMap().then((data) => {
      app.$emit(app.EventType.dataInit, { data, force: true }) //force=true 强制系统每次进行此接口调用
    })
  }
}
/************************* 分路由进行数据调取 - 结束 ******************************/

// 方式二：一次性调取所有路由数据
/************************* 一次性调取所有页面数据 - 开始 ******************************/
//一次性调取 所有接口数据
// function requestAll() {
//   return axios.all([getHome(store.state.homeParams), getIndustryCloud(store.state.cloudParams), getIndustrialMap()])
// }
// const init = () => {
//   // 获取全景洞察页面片区数据
//   getArea().then(res => {
//       store.commit('setArea', res.area)
//     })
//   // 获取产业云图页面筛选条件数据
//   getEntInd().then(res => {
//       store.commit('setEntInd', res)
//     })

//   // 一次性调取所有路由页面数据
//   requestAll()
//     .then(res => {
//       // 通知系统 接收数据
//       app.$emit(app.EventType.dataInit, res)
//       app.log('restful init')
//     })
//     .catch(err => console.log(err))
// }

/************************* 一次性调取所有页面数据 - 结束 ******************************/

// 产业云图参数变化， 获取产业云图数据
// store && store.subscribe((mutations, state) => {
//   console.log(111)
//   if(mutations.type == 'setCloudParams'){
//     getIndustryCloud(mutations.payload).then(res => {
//       // 更新数据
//       app.dataUpdate({path: '/industryCloud', ...res})
//       // 页面模块刷新
//       setTimeout(() => {
//         app.anovPart.leftTop.init()
//         app.anovPart.leftBottom.update(false)
//         app.anovPart.rightTop.update(false)
//         app.anovPart.blueVMap.update(false)
//       }, 0)
//     }).catch(err => {
//       console.log(err)
//     })
//   }
// })

// 全景洞察参数变化， 获取全景洞察数据
// store && store.subscribe((mutations, state) => {
//   if(mutations.type == 'setHomeParams'){
//     getHome({area: mutations.payload}).then(res => {
//       // 更新数据
//       app.dataUpdate({path: '/home', ...res})
//       // 页面模块刷新
//       setTimeout(() => {
//         app.anovPart.rightTop.update(false)
//       }, 0)
//     }).catch(err => {
//       console.log(err)
//     })
//   }
// })

export { init, getBulianData }
